Connectionist temporal localization for sound event detection with sequential labeling
https://scrapbox.io/files/64479b574720c1001c75d0ae.png
日付
2023/4/26
論文リンク
https://maigoakisame.github.io/papers/icassp19b.pdf
文献情報
Yun Wang, Florian Metze
ICASSP 2019
要は何?
弱教師あり音響イベント検出のうち,順序が与えられた場合の問題設定に着目.
CTCの弱点であるpeak clustering問題に対処したCTL(Connectionist Temporal Localization)を提案.
問題意識と解決策
音響イベント検出は強ラベル(種類+出現時間)がつけられたデータで行われる -> 大規模にデータ作成が困難
どのイベントが出現したかの弱ラベル(出現時間なし)の弱教師あり学習が代わりに用いられることも.
この場合,強ラベルの出力を時間プーリングしたものを弱ラベルに最適化するマルチインスタンス学習(MIL)に基づくモデルが用いられる.
順序のみ(話声,犬の鳴き声,犬の鳴き声,サイレン,...)のようにラベルが与えられる場合の問題設定も同様に弱教師あり学習.(これを「シーケンス学習」とする)
この問題設定では音声認識に用いられるCTCが適用できる.->しかし,後述のpeak clustering problemから,いつ鳴っているかの推定性能が低かった.
手法
音響イベント検出におけるシーケンス学習
音声認識とは異なり,複数の音イベントがオーバーラップしうる.そのため,各イベントの開始・終了を一つのトークンとする.
これは正確に開始・終了を特定しなければいけない強ラベルのアノテーションよりも楽であると主張
peak clusteringとは?
CTCの場合,いずれのイベントの開始も終了もない時刻にはブランクラベルを導入している.(すなわち,イベント数Nとするとラベル数は2N+1となる)
ブランクラベルとダブりを除去する処理後のラベル列に対し,処理を施して同様の出力となる全ての組み合わせに対する確率の和を最大化する.
https://scrapbox.io/files/64479e86b8c873001b790527.png
yamamoto.icon この確率和はフォワードアルゴリズムにより計算
しかし著者等の先行研究(CTCを用いたシーケンス学習による弱教師ありイベント検出)だと短いイベントの検出はうまくいくが,長いイベントに対しては終了トークンを開始トークンのすぐ後ろに置いてしまう傾向があった.
原因1.オーバーラップがそこまで頻出ではなく,特定イベントの開始-そのイベント終了の順序が非常に多く,開始と終了ということを理解せずにまとめてそのイベントを表すものだと誤解し学習してしまう.
原因2.CTCはトークン列の順序のみを学習するので,ローカライゼーションに関する仮定を置いていない
原因3.イベント off と継続を区別していない(どちらもブランク)ので,↑に対するペナルティもない
CTL
以下の点を変更
イベントの出現確率のdeltaをとる
同じフレームで複数のイベントが起こることを許容する
ダブりを集約しない
1. イベントの開始・終了を学習できないことに対し,境界で音響特徴が異なるように,"Rectified delta"を導入
あるフレームtのイベントEが出現している確率を$ y_t(E)とすると,
https://scrapbox.io/files/6447a378146588001c886cdc.png
上:開始の確率(前の時刻より値が増えたら発火)
下:終了の確率(前の時刻より減ったら発火)
これでイベント開始・終了のフレームごとの確率が定義できたが,ブランクの確率についても定義したい.
しかし,このままでは各フレームごとのイベントの確率の和が1になってしまい,ブランクの確率が0になってしまうので,同じフレームで発生するイベントを独立とする.
すなわち,ブランクの確率は各イベントの開始・終了"でない"確率の総乗とした
https://scrapbox.io/files/6447acf08aef03001b51e4d9.png
すなわち,ある境界イベントlに対する生起確率は,生起確率$ z_t(l)
https://scrapbox.io/files/6447ad595c95bc001b19dd97.png
ここでhttps://scrapbox.io/files/6447b38651b9ce001bbd7297.pngとすれば,
https://scrapbox.io/files/6447b3c25c95bc001b1a2d98.png
yamamoto.icon オッズ比?
これによって通常のCTCが不可能な複数のオーバーラップを表現可能に.
また,ここからさらに連続する同じイベントのダブりを消さないようにすることで,ブランクラベルを完全に除去
すなわち,あるフレームtにおいて,k個の境界イベント $ l_1, ..., l_kが同時に生起する確率は,
https://scrapbox.io/files/6448ca42019a92001c2d0408.png
CTLのフォワードアルゴリズム
(順序のみの)正解ラベル列$ L = l_1, ...,l_{|L|}を(順序にかかわらず)生成する確率は,各イベントのフレームごとの確率$ y_t(E)が与えられた時,
$ \alpha_t(i)をフレーム時刻t時点でLの最初のi個のラベルを生起させた確率として表現する.これは以下の漸化式で計算.
https://scrapbox.io/files/6447b4a351b9ce001bbd7b98.png
jはtの時点で生起済みのラベルの個数.
この初期値は,
https://scrapbox.io/files/6448d33deadf50001c476348.png
最終的な値$ \alpha_{T+1}(|L|)は,正解ラベル列Lを生起する確率.この負の対数が損失関数なる.
モデル
https://scrapbox.io/files/6448cbf035a859001b0e32bf.png
CRNN.
フレームごとの出力確率(strong 推定)に対し,Rectified deltaを計算し,それをターゲットとする.
その101*70のmatrixに対してCTLを適用する.
実験とその結果
Audio Setを用いた弱教師ありイベント検出
https://scrapbox.io/files/6448ceb3e257e2001b3d08af.png
CTCの性能を改善
同時出現数(Max Concurrence)を調節した場合のパフォーマンスも以上の通り.
Example
ドットが正解ラベル,xが検出結果(確率が閾値以上)
https://scrapbox.io/files/6448cefe08759a001b2c0c70.png
CTCでは特にspeech(短めのイベント)に対しては推定がうまくいっているが,dog(長めのイベント)ではpeak clusteringしており,ローカライズが失敗している
対し,CTLではどちらにもローカライズができている
CTLとMILを組み合わせるとどうなる?
CTLの値は0.2付近で収束
MILの値は0.02付近で収束
ロスの重み付け和をとって計算.MIL:CTL=1:0(Pure MIL),30:1,10:1(同比率),3.3:1, 0:1(Pure CTL)で比較
https://scrapbox.io/files/6448cea7b67b1a001c88cc37.png
同時出現を許容する場合に3.3:1でベストの性能.
コメント
(素人感のある感想)開始-終了の順番は必ず保証されているんだろうか?開始-開始みたいなものが来る場合もあるんだろうか
そもそも順序だけついているデータセットってあるんだろうか?どちらかというと境界が正確でないstrong labelのデータセットに使えそうな方法だと思った